#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "file_attente_personnel.h"
void ajouter_personnel_attente(FILE* FICHE_PERSONNEL_ATTENTE,Personnel p)
{

    FICHE_PERSONNEL_ATTENTE = fopen ("personnel_attente.txt" , "a" );

    fprintf(FICHE_PERSONNEL_ATTENTE, "%s %s %d %ld %ld %d\n",p.nom,p.prenom,p.age,p.cin,p.matricule,p.etat);

    fclose(FICHE_PERSONNEL_ATTENTE);
}

void afficher_personnel_attente(FILE* FICHE_PERSONNEL_ATTENTE)
{
    char nom[20];
    char prenom[20];
    int age;
    long int cin;
    long int matricule;
    int etat ;
    FICHE_PERSONNEL_ATTENTE = fopen("personnel_attente.txt", "r");
    printf("\n\n nom prenom age cin matricule etat \n");
    while (!feof(FICHE_PERSONNEL_ATTENTE))
    {
        fscanf(FICHE_PERSONNEL_ATTENTE, "%s\n",nom);
        fscanf(FICHE_PERSONNEL_ATTENTE, "%s\n",prenom);
        fscanf(FICHE_PERSONNEL_ATTENTE, "%d\n",&age);
        fscanf(FICHE_PERSONNEL_ATTENTE, "%ld\n",&cin);
        fscanf(FICHE_PERSONNEL_ATTENTE, "%ld\n",&matricule);
        fscanf(FICHE_PERSONNEL_ATTENTE, "%d\n",&etat);
        printf("%s %s %d %ld %ld %d\n",nom,prenom,age,cin,matricule,etat);
    }
    fclose(FICHE_PERSONNEL_ATTENTE);

}
void initialiser_personnel_attente(FILE* FICHE_PERSONNEL_ATTENTE)
{
    FICHE_PERSONNEL_ATTENTE = fopen ("personnel_attente.txt" , "w" );

    fclose(FICHE_PERSONNEL_ATTENTE);


}


void recherche_personnel_attente(FILE *FICHE_PERSONNEL_ATTENTE,int matr,char s[])
{
    Personnel p;

    int test ;


    FICHE_PERSONNEL_ATTENTE = fopen("personnel_attente.txt", "r");
    test = 0;
    printf("donner le matricule a chercher: ");
    scanf("%d",&matr);

    while ( !feof(FICHE_PERSONNEL_ATTENTE) && test == 0)
    {

        fscanf(FICHE_PERSONNEL_ATTENTE, "%s\n",p.nom);
        fscanf(FICHE_PERSONNEL_ATTENTE, "%s\n",p.prenom);
        fscanf(FICHE_PERSONNEL_ATTENTE, "%d\n",&(p.age));
        fscanf(FICHE_PERSONNEL_ATTENTE, "%ld\n",&(p.cin));
        fscanf(FICHE_PERSONNEL_ATTENTE, "%ld\n",&(p.matricule));
        fscanf(FICHE_PERSONNEL_ATTENTE, "%d\n",&(p.etat));

        if (p.matricule == matr)
        {
            test=1;

        }
    }
    if (test == 0){

    sprintf(s,"ce personnel est inexistant\n") ;

    }
    else sprintf(s,"\n ce personnel existe\n nom=%s prenom=%s age=%d cin=%ld matrice=%ld etat=%d\n",p.nom,p.prenom,p.age,p.cin,p.matricule,p.etat);
    fclose(FICHE_PERSONNEL_ATTENTE);



}



void supprimer_personnel_attente(FILE * FICHE_PERSONNEL_ATTENTE)
{
    char nom[20];
    char prenom[20];
    int age;
    long int cin;
    long int matricule;
    int etat ;
    int matr ;
    FILE *tmp ;
    FICHE_PERSONNEL_ATTENTE = fopen("personnel_attente.txt", "r");
    tmp = fopen("tmp.txt", "w");

    printf("donner le matricule a supprimer: ");
    scanf("%d",&matr);

    while ( !feof(FICHE_PERSONNEL_ATTENTE) )
    {

        fscanf(FICHE_PERSONNEL_ATTENTE, "%s\n",nom);
        fscanf(FICHE_PERSONNEL_ATTENTE, "%s\n",prenom);
        fscanf(FICHE_PERSONNEL_ATTENTE, "%d\n",&age);
        fscanf(FICHE_PERSONNEL_ATTENTE, "%ld\n",&cin);
        fscanf(FICHE_PERSONNEL_ATTENTE, "%ld\n",&matricule);
        fscanf(FICHE_PERSONNEL_ATTENTE, "%d\n",&etat);
        if (matricule != matr)
        {

            fprintf(tmp, "%s %s %d %ld %ld %d\n",nom,prenom,age,cin,matricule,etat);

        }
    }

    remove("personnel_attente.txt");
    rename("tmp.txt","personnel_attente.txt");

    fclose(FICHE_PERSONNEL_ATTENTE);
    fclose (tmp);
    printf("suppression terminee: ");

}

int nbre_personnel_attente(FILE * FICHE_PERSONNEL_ATTENTE)
{

    Personnel p ;

    int nbpa = 0;
    FICHE_PERSONNEL_ATTENTE = fopen("personnel_attente.txt", "r");
    
        while(fscanf(FICHE_PERSONNEL_ATTENTE,"%s %s %d %ld %ld %d",p.nom,p.prenom,&(p.age),&(p.cin),&(p.matricule),&(p.etat))!=EOF)
        {
            nbpa++;
        }
        fclose(FICHE_PERSONNEL_ATTENTE);
    
    
    return nbpa;
}
